/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.tamnhat.report.controller;

import com.tamnhat.lazyLoading.LazyAbstractDataModel;
import com.tamnhat.report.entity.SYSTEM_LOG;
import com.telsoft.applet.util.StringUtil;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
import org.primefaces.model.LazyDataModel;

/**
 *
 * @author Administrator
 */
@ViewScoped
public class SYSTEM_LOGController implements Serializable{
    private List<SYSTEM_LOG> listSL = new ArrayList<SYSTEM_LOG>();
    private Date tuNgay;
    private Date denNgay;
    private String tagS;
    private LazyDataModel<SYSTEM_LOG> lazyDataModel;
    /**
     * Creates a new instance of SYSTEM_LOGController
     */
    public SYSTEM_LOGController() {
    }

    public LazyDataModel<SYSTEM_LOG> getLazyDataModel() {
        return lazyDataModel;
    }

    public void setLazyDataModel(LazyDataModel<SYSTEM_LOG> lazyDataModel) {
        this.lazyDataModel = lazyDataModel;
    }
    
    public Date getTuNgay() {
        return tuNgay;
    }

    public void setTuNgay(Date tuNgay) {
        this.tuNgay = tuNgay;
    }

    public Date getDenNgay() {
        return denNgay;
    }

    public void setDenNgay(Date denNgay) {
        this.denNgay = denNgay;
    }

    public List<SYSTEM_LOG> getListSL() {
        return listSL;
    }

    public void setListSL(List<SYSTEM_LOG> listSL) {
        this.listSL = listSL;
    }

    public String getTagS() {
        return tagS;
    }

    public void setTagS(String tagS) {
        this.tagS = tagS;
    }
    
    public boolean checkInput(){
        if(denNgay.compareTo(tuNgay) < 0){
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Từ ngày không được lớn hơn đến ngày!"));
            return false;
        }
        return true;
    }
    
    public String tracuu(){
        try{
            if(checkInput()){
                listSL = SYSTEM_LOG.getAll(" where log_date >= to_date('"+StringUtil.format(tuNgay, "dd-MM-yyyy")+"','dd-mm-yyyy') and log_date < to_date('"+StringUtil.format(denNgay, "dd-MM-yyyy")+"','dd-mm-yyyy') + 1"
                        + " and lower(tag) like '%"+tagS.toLowerCase()+"%'");
                lazyDataModel = new LazyAbstractDataModel<SYSTEM_LOG>(listSL);
                if(listSL.size() > 0){
                    FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Có "+listSL.size() +" bản ghi được tìm thấy!"));
                }
                else FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Không có bản ghi nào được tìm thấy!"));
            }
        }catch(Exception e){
            e.printStackTrace();
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(e.getMessage()));
        }
        return "";
    }
}
